package com.cjkj.applet.mapper;

import java.util.List;
import com.cjkj.applet.domain.TPatVisit;
import com.cjkj.applet.domain.vo.PatientVo;
import org.apache.ibatis.annotations.Param;

/**
 * 患者就诊记录Mapper接口
 * 
 * @author cjkj
 * @date 2024-08-30
 */
public interface TPatVisitMapper 
{

    List<TPatVisit> selectList(TPatVisit visit);

    TPatVisit selectByPatientIdAndHospitalId(@Param("patientId") Long patientId,
                                             @Param("hospitalId") String hospitalId,
                                             @Param("visitStatus") String visitStatus,
                                             @Param("dataType") String dataType);

    List<PatientVo> selectByDoctorId(@Param("doctorId") String doctorId, @Param("dataType") String dataType);

    /**
     * 查询患者就诊记录
     *
     * @param visitNo 患者就诊记录主键
     * @return 患者就诊记录
     */
    TPatVisit selectTPatVisitByVisitNo(Long visitNo);

    /**
     * 修改就诊状态
     * @param tPatVisit
     * @return
     */
    int updateTPatVisitStatus(TPatVisit tPatVisit);

    /**
     * 修改患者就诊记录
     *
     * @param tPatVisit 患者就诊记录
     * @return 结果
     */
    int updateTPatVisit(TPatVisit tPatVisit);

    /**
     * 查询小程序用户开单的患者数量
     * @param appUserId
     * @return
     */
    int selectCountByAppUserId(@Param("appUserId") Long appUserId);

    /**
     * 患者交接
     * @param transferUserId 移交方ID
     * @param receiverUserId 接收方ID
     * @return
     */
    int patientReceive(@Param("transferUserId") Long transferUserId, @Param("receiverUserId") Long receiverUserId);














    /**
     * 查询患者就诊记录列表
     * 
     * @param tPatVisit 患者就诊记录
     * @return 患者就诊记录集合
     */
    public List<TPatVisit> selectTPatVisitList(TPatVisit tPatVisit);

    /**
     * 新增患者就诊记录
     * 
     * @param tPatVisit 患者就诊记录
     * @return 结果
     */
    public int insertTPatVisit(TPatVisit tPatVisit);


    /**
     * 删除患者就诊记录
     * 
     * @param visitNo 患者就诊记录主键
     * @return 结果
     */
    public int deleteTPatVisitByVisitNo(Long visitNo);

    /**
     * 批量删除患者就诊记录
     * 
     * @param visitNos 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTPatVisitByVisitNos(Long[] visitNos);
}
